package com.jason.canvas.view;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Path;
import android.util.AttributeSet;
import android.view.View;

/**
 * @DESC:   canvas裁剪方法
 * @Author: Jason
 * @Date: 16/9/22
 * @Time: 16:27
 */

public class ClipPathView13 extends View {

    private Path mPath;

    public ClipPathView13(Context context, AttributeSet attrs) {
        super(context, attrs);

        mPath = new Path();
        mPath.moveTo(50, 50);
        mPath.lineTo(75, 23);
        mPath.lineTo(150, 100);
        mPath.lineTo(80, 110);
        mPath.close();

    }

    @Override
    protected void onDraw(Canvas canvas) {
        canvas.drawColor(Color.BLUE);
        canvas.clipPath(mPath);
        canvas.drawColor(Color.RED);

    }

    /**
     *  Canvas裁剪方法都会带有Region.Op参数的重载
     *  clipPath(Path path, Region.Op op)
     *  clipRect(Rect rect, Region.Op op)
     *  clipRect(RectF rect, Region.Op op)
     *  clipRect(float left, float top, float right, float bottom, Region.Op op)
     *  clipRegion(Region region, Region.Op op)
     *  要明白这些方法的Region.Op参数那么首先要了解Region为何物。Region的意思是“区域”，
     *  在Android里呢它同样表示的是一块封闭的区域，Region中的方法都非常的简单，
     *  我们重点来瞧瞧Region.Op，Op是Region的一个枚举类，里面呢有六个枚举常量：
     */
}
